Shared-media communication environments, such as wireless computer networks, allow for many devices to communicate simultaneously with one another. Often, such communication environments are subjected to both internal and external forms of interference, and devices may not always have a reliable communication channel to other devices. As such, portions of transmitted messages (or all of the messages) may be erroneously received by a device, such as where a transmitted value (e.g., a “1”) is received as a different value due to such interference (e.g., a “0” or an unknown value). For example, increased internal congestion may cause packet collisions, while other factors such as signal attenuation, path loss, or fading can lead to unpredictable losses in the power of the received signal.
In many communication environments, a plurality of applications may attempt to communicate data between communication devices simultaneously. In particular, according to various shared-media communication standards, such as IEEE Std. 802.11, data bits from one or more applications may be placed within communication frames (e.g., a same shared frame) at the physical (PHY) layer, and transmitted between the devices. The receiving device (PHY layer) would then decode the communication frames, and correspondingly reconstructs the original application data for the one or more applications.
Because of the potentially lossy nature of the shared-media network, however, the reconstructed application data may be incorrect, and may need to be retransmitted to correct the inconsistencies. For tolerant applications, such as low speed and/or low priority data transfer, this may not pose a significant issue. However, for less tolerant applications, such as high speed and/or high priority control messages, such information loss can be particularly problematic. Though there are many schemes that protect message transmissions, such as Automatic Repeat and reQuest (ARQ), Forward Error Correction (FEC), and others, generally such schemes require a certain number of parity bits to be sent along with actual data, which increases the overhead of the data communication, both in terms of the number of bits transmitted, and in terms of the processing power required to decode and reconstruct messages.